package com.ysyc.driver_ee.tools;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

/**
 * <p>描述：(这里用一句话描述这个类的作用)</p>
 * 作者： Chan<br>
 * 日期： 2018/10/11 9:58<br>
 * 版本： v1.0<br>
 */
public class DateUtils {

    /**
     * 调用此方法输入所要转换的时间戳输入例如（1402733340）输出（"2014年06月14日16:09"）	 * 	 * @param time	 * @return
     */
    public static String orderTime(String time) {
        SimpleDateFormat sdr = new SimpleDateFormat("MM月dd日  HH:mm");
        @SuppressWarnings("unused") long lcc = Long.valueOf(time) / 1000;
//        int i = Integer.parseInt(time);
        String times = sdr.format(new Date(lcc * 1000L));
        String currentTime = sdr.format(new Date());
        return times;
    }

    /**
     * 调用此方法输入所要转换的时间戳输入例如（1402733340）输出（"2014年06月14日16:09"）	 * 	 * @param time	 * @return
     */
    public static String orderTime(long time) {
        SimpleDateFormat sdr = new SimpleDateFormat("MM月dd日  HH:mm");
        @SuppressWarnings("unused") long lcc = time/ 1000;
//        int i = Integer.parseInt(time);
        String times = sdr.format(new Date(lcc * 1000L));

        return times;
    }




    /**
     * 调用此方法输入所要转换的时间戳输入例如（1402733340）输出（"2014年06月14日16:09"）	 * 	 * @param time	 * @return
     */
    public static String orderTime(Date time) {
        SimpleDateFormat sdr = new SimpleDateFormat("MM月dd日  HH:mm");
        String times = sdr.format(time);
        return times;
    }


    public static String isToday(Date date) {
        Calendar calendarNew = Calendar.getInstance();
        calendarNew.setTime(date);
        Calendar calendar = Calendar.getInstance();
        if (calendar.get(Calendar.YEAR)==calendarNew.get(Calendar.YEAR)&&calendar.get(Calendar.MONTH)==calendarNew.get(Calendar.MONTH)&&calendar.get(Calendar.DATE)==calendarNew.get(Calendar.DATE)){
            SimpleDateFormat sdr = new SimpleDateFormat("HH:mm");
            String times = sdr.format(date);
            return times;
        }
        return orderTime(date);
    };


    /**
     * 调用此方法输入所要转换的时间戳输入例如（1402733340）输出（"2014年06月14日16:09"）	 * 	 * @param time	 * @return
     */
    public static String orderYearTime(String time) {
        if (time.length() > 14) {
            return time;
        }
        SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日  HH:mm");
        @SuppressWarnings("unused") long lcc = Long.valueOf(time) / 1000;
        String times = sdr.format(new Date(lcc * 1000L));
        String currentTime = sdr.format(new Date());
        return times;
    }


    /**
     * 掉此方法输入所要转换的时间输入例如（"2014年06月14日16时09分00秒"）返回时间戳
     * "2018-10-16 16:17:20"
     *
     * @param time
     * @return
     */
    public String data(String time) {

        long timeInMillis = Calendar.getInstance().getTimeInMillis();


        SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
                Locale.CHINA);
        Date date;
        String times = null;
        try {
            date = sdr.parse(time);
            long l = date.getTime();
            String stf = String.valueOf(l);
            times = stf.substring(0, 10);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return times;
    }


    public static boolean getTimeMagnitude(String startTimestamp) {
        long l = Long.valueOf(startTimestamp).longValue();
        return Calendar.getInstance().getTimeInMillis() > l;
    }

    //根据秒数转化为时分秒   00:00:00
    public static String getTime(int second) {
        if (second < 10) {
            return "00:0" + second;
        }
        if (second < 60) {
            return "00:" + second;
        }
        if (second < 3600) {
            int minute = second / 60;
            second = second - minute * 60;
            if (minute < 10) {
                if (second < 10) {
                    return "0" + minute + ":0" + second;
                }
                return "0" + minute + ":" + second;
            }
            if (second < 10) {
                return minute + ":0" + second;
            }
            return minute + ":" + second;
        }
        int hour = second / 3600;
        int minute = (second - hour * 3600) / 60;
        second = second - hour * 3600 - minute * 60;
        if (hour < 10) {
            if (minute < 10) {
                if (second < 10) {
                    return "0" + hour + ":0" + minute + ":0" + second;
                }
                return "0" + hour + ":0" + minute + ":" + second;
            }
            if (second < 10) {
                return "0" + hour + minute + ":0" + second;
            }
            return "0" + hour + minute + ":" + second;
        }
        if (minute < 10) {
            if (second < 10) {
                return hour + ":0" + minute + ":0" + second;
            }
            return hour + ":0" + minute + ":" + second;
        }
        if (second < 10) {
            return hour + minute + ":0" + second;
        }
        return hour + minute + ":" + second;
    }


}